#ifndef __LEVEL_H__
#define __LEVEL_H__

#include <vector>
#include "Layer.h"

struct Tileset {
    int firstGridID;
    int tileWidth;
    int tileHeight;
    int  spacing;
    int margin;
    int width;
    int height;
    int numColumns;
    std::string name;
};

class Level {
    public:
        ~Level();

        void update();
        void render();
        std::vector<Tileset> * getTilesets(){
            return &m_tilesets;
        }
        std::vector<Layer*> * getLayers(){
            return &m_layers;
        }
        void setPlayer(Player *pPlayer) { m_pPlayer = pPlayer; }
        Player *getPlayer(void) { return m_pPlayer; }

    private:
        friend class LevelParser;
        Level();
        std::vector<Tileset> m_tilesets;
        std::vector<Layer*> m_layers;
        Player * m_pPlayer;
};

#endif
